// ================================START====================================
// Template generated from		FRAMEWORKIVY CODE GENERATOR
// Generator Version:			<1.0.0.0>
// Template Creation Time:		<20 May 2016   12:07:23 AM>
// Template Modification Time:	<04 June 2016   11:55:40 PM>
// Code Generation Time:		<11 June 2016   12:47:34 AM>
// Workstation ID:				<LENOVO-G50>
// Current system User ID:		<Mrinmoy Das (Local)>
// Entity/Table Name:			<UserOrganizationRole>
// ModuleName:			        <UserManagement>
// Description:					<CSharp Class For Data Entity>
// Template File:				<IvyGodeGenDefaultTemplate V1.1.xml>

// Please modify the generated code as per requirement.
// This code generator is just to speed up the stereo type codes
// Complex logic needs to be modified manually.

// This block of comments will not be included in
// the definition of the procedure.
// =========================================================================

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

//This Class specific System namespaces
using System.Runtime.Serialization;

//This Class Specific IvyFramework namespaces
using Ivy.Common.Framework.Base;

namespace Ivy.UserManagement.Entity
{
    [Serializable]
    [DataContract]
    public class UserOrganizationRole : DataEntityBase
    {
        #region  Variable & constant
        // All constants and local variable should be declared here
        // TRY NOT TO CREATE PUBLIC VARIABLES INSTEAD USE PROPERTIES FOR THAT PURPOSE.
        // Variable naming convention :- 
        // The naming should be self explanatory, make it long to explain the purpose 
        // and use PascalCase to seperate words as shown in the example below.
        // DO NOT USE ANY ABBRIVIATION use full word (like "Customer" instead of "Cust"
        // Naming convention for all local variable should start with underscore "_"
        // Naming convention for all local constant should start with "_The"
        // Example :    string _CustomerCode = string.Empty;
        // Example :    const string _TheDefaultSmtpServer = "DefaultSmtpServer";
        // Example :    Nullable<Int32> lPersonKey = null;
        // Example :    Nullable<DateTime> lPersonDateOfBirth = null;
        // ==================== START YOUR CODE FROM NEXT LINE ========================

        int _UserKey = -1;
        int _UserOrganizationKey = -1;
        int _UserRoleKey = -1;
        string _UserLoginID = string.Empty;
        string _UserOrganizationCode = string.Empty;
        string _UserOrganizationName = string.Empty;
        string _UserRoleCode = string.Empty;
        string _UserRoleName = string.Empty;

        #endregion  Variable & constant

        #region Constructor & Destructor
        // Cut and Copy the default constructor for the class inside this region.
        // Generally not required in UI layer.
        // Example:
        // public SampleClassTemplate()
        // {
        //     
        // }
        // ==================== START YOUR CODE FROM NEXT LINE ========================

        public UserOrganizationRole()
            : base()
        {
            this.Sys_DeleteType = DeleteType.SoftDeleteOnly;
        }

        #endregion Constructor & Destructor

        #region Properties
        // Any value/variable that needs to be exposed outside the class we need to create a property.
        // Avoid creating public variables rather create public properties.
        // UI layer may have public custom properties. these are very handy for User Controls.
        // Property naming convention :- Properties will be exposed outside the class, 
        // the naming should be self explanatory, make it long to explain the purpose 
        // and use PascalCase to seperate words as shown in the example below.
        // DO NOT USE ANY ABBRIVIATION use full word (like "Customer" instead of "Cust"
        // All properties should have a corresponding local variable 
        // and the property name and local variable name should match.
        // Example :
        // [DataMember]
        // public Nullable<Int32> PersonKey
        // {
        //     get
        //     {
        //         return lPersonKey;
        //     }
        //     set
        //     {
        //         lPersonKey = value;
        //         base.SetEntityStateChangeAttribute();
        //     }
        // }
        // ==================== START YOUR CODE FROM NEXT LINE ========================

        [DataMember]
        public int UserKey
        {
            get
            {
                return _UserKey;
            }
            set
            {
                _UserKey = value;
                base.SetEntityStateChangeAttribute();
            }
        }
        [DataMember]
        public int UserOrganizationKey
        {
            get
            {
                return _UserOrganizationKey;
            }
            set
            {
                _UserOrganizationKey = value;
                base.SetEntityStateChangeAttribute();
            }
        }
        [DataMember]
        public int UserRoleKey
        {
            get
            {
                return _UserRoleKey;
            }
            set
            {
                _UserRoleKey = value;
                base.SetEntityStateChangeAttribute();
            }
        }
        [DataMember]
        public string UserLoginID
        {
            get
            {
                return _UserLoginID;
            }
            set
            {
                _UserLoginID = value;
                base.SetEntityStateChangeAttribute();
            }
        }
        [DataMember]
        public string UserOrganizationCode
        {
            get
            {
                return _UserOrganizationCode;
            }
            set
            {
                _UserOrganizationCode = value;
                base.SetEntityStateChangeAttribute();
            }
        }
        [DataMember]
        public string UserOrganizationName
        {
            get
            {
                return _UserOrganizationName;
            }
            set
            {
                _UserOrganizationName = value;
                base.SetEntityStateChangeAttribute();
            }
        }
        [DataMember]
        public string UserRoleCode
        {
            get
            {
                return _UserRoleCode;
            }
            set
            {
                _UserRoleCode = value;
                base.SetEntityStateChangeAttribute();
            }
        }
        [DataMember]
        public string UserRoleName
        {
            get
            {
                return _UserRoleName;
            }
            set
            {
                _UserRoleName = value;
                base.SetEntityStateChangeAttribute();
            }
        }
        #endregion Properties

        #region Events
        // Generally UI layer will have public events.
        // Cut and Copy the default generated events for the class inside this region.
        // ==================== START YOUR CODE FROM NEXT LINE ========================

        #endregion Events

        #region Public Methods
        // Any method that needs to be exposed outside the class will be created inside this region.
        // Public Method naming convention :- Public Method will be exposed outside the class, 
        // The input and output parameters are also going to be exposed outside the class
        // the naming should be self explanatory, make it long to explain the purpose 
        // and use PascalCase to seperate words as shown in the example below.
        // DO NOT USE ANY ABBRIVIATION use full word (like "Customer" instead of "Cust"
        // Example :
        // public bool RegisterNewCustomer(Customer Customer)
        // {
        //     bool IsCustomerDataSaved = false;
        //     //TO DO logic to save data
        //     IsCustomerDataSaved = InsertCustomerDataUsingDao(Customer);
        //     return IsCustomerDataSaved;
        // }
        // ==================== START YOUR CODE FROM NEXT LINE ========================

        #endregion Public Methods

        #region Private Methods
        // All local class level methods will be inside this region. Mostly these are helper methods.
        // Private Method naming convention :- The naming should be self explanatory, 
        // make it long to explain the purpose and use PascalCase to seperate words as shown in the example below.
        // DO NOT USE ANY ABBRIVIATION use full word (like "Customer" instead of "Cust"
        // Input parameter will have a "p" as prefix. 
        // This will help the parameter variable that the value is originated outside this private method.
        // Example :
        // public bool InsertCustomerDataUsingDao(Customer pCustomer)
        // {
        //     bool IsCustomerDataInsertedSuccessfully = false;
        //     //TO DO logic to save data
        //     //....
        //     //....
        //     return IsCustomerDataInsertedSuccessfully;
        // }
        // ==================== START YOUR CODE FROM NEXT LINE ========================

        #endregion Private Methods

    }
}

